<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用克隆的原型模式</title>
</head>

<body>
    <p>既然原型模式是通过克隆来创建对象的，那么很自然地会想到，如果需要一个跟某个对象一
        模一样的对象，就可以使用原型模式。</p>
    <p>所有的 JavaScript 对象都是从某个对象上克隆而来的。</p>
    <p>事实上，JavaScript 中的根对象是 Object.prototype 对象。Object.prototype 对象是一个空的
        对象。我们在 JavaScript 遇到的每个对象，实际上都是从 Object.prototype 对象克隆而来的，
        Object.prototype 对象就是它们的原型。</p>
    <script>
        var Plane = function () {
            this.blood = 100;
            this.attackLevel = 1;
            this.defenseLevel = 1;
        };
        var plane = new Plane();
        plane.blood = 500;
        plane.attackLevel = 10;
        plane.defenseLevel = 7;
        var clonePlane = Object.create(plane);

        plane.time = 1000; // 这个变量，还是会影响到
        
        console.log(clonePlane); // 输出：Object {blood: 500, attackLevel: 10, defenseLevel: 7}
        //在不支持 Object.create 方法的浏览器中，则可以使用以下代码：
        Object.create = Object.create || function (obj) {
            var F = function () { };
            F.prototype = obj;
            return new F();
        } 
    </script>
</body>

</html>